//package com.example.togethermove.config;
//
//import android.app.Activity;
//import android.app.Application;
//import android.content.Context;
//import android.content.Intent;
//import android.os.Bundle;
//import android.os.Handler;
//import android.os.Looper;
//import android.util.Log;
//import android.widget.Toast;
//
//
//import com.example.togethermove.ui.MainActivity;
//
//import java.util.ArrayList;
//import java.util.List;
//import java.util.logging.Logger;
//
//
//public class MyApp extends Application {
//
//    private static MyApp customApp;
//    private String fileUUID = "";
//    private String loadingVerisonName = "";
//    // user your appid the key.
//    private static final String APP_ID = "2882303761517890046";
//    // user your appid the key.
//    private static final String APP_KEY = "5471789051046";
//
//    // 此TAG在adb logcat中检索自己所需要的信息， 只需在命令行终端输入 adb logcat | grep
//    // com.xiaomi.mipushdemo
//    public static final String TAG = "com.ryx.internetstars";
//    private static MainActivity sMainActivity = null;
//    //    private static DemoHandler sHandler = null;
//    public static Context mContext;
//
//    @Override
//    public void onCreate() {
//        super.onCreate();
//        customApp = this;
//        mContext = this;
//        FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
//                .tag("TAG")
//                .build();
//        Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy){
//            @Override
//            public boolean isLoggable(int priority, String tag) {// 打印log日志开关
//                return Config.debug;
////                return BuildConfig.DEBUG;
//            }
//        });
////        //接入极光推送
////        JPushInterface.setDebugMode(true);
////        JPushInterface.init(this);
//
//        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
//            @Override
//            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
//                activities.add(activity);
//            }
//
//            @Override
//            public void onActivityStarted(Activity activity) {
//
//            }
//
//            @Override
//            public void onActivityResumed(Activity activity) {
//
//            }
//
//            @Override
//            public void onActivityPaused(Activity activity) {
//
//            }
//
//            @Override
//            public void onActivityStopped(Activity activity) {
//
//            }
//
//            @Override
//            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
//
//            }
//
//            @Override
//            public void onActivityDestroyed(Activity activity) {
//                activities.remove(activity);
//            }
//        });
//
//        install();//异常闪退优化处理
//
//        //非wifi情况下，主动下载x5内核
////        QbSdk.setDownloadWithoutWifi(true);
////        //搜集本地tbs内核信息并上报服务器，服务器返回结果决定使用哪个内核。
////        QbSdk.PreInitCallback cb = new QbSdk.PreInitCallback() {
////            @Override
////            public void onViewInitFinished(boolean arg0) {
////                //x5內核初始化完成的回调，为true表示x5内核加载成功，否则表示x5内核加载失败，会自动切换到系统内核。
////            }
////
////            @Override
////            public void onCoreInitFinished() {
////
////            }
////        };
////        QbSdk.initX5Environment(getApplicationContext(),cb);
////    }
//
//    private void install() {
//        final Thread.UncaughtExceptionHandler sysExcepHandler = Thread.getDefaultUncaughtExceptionHandler();
//        final Toast toast = Toast.makeText(this, "", Toast.LENGTH_SHORT);
//        DebugSafeModeUI.init(this);
//        Cockroach.install(this, new ExceptionHandler() {
//
//            @Override
//            protected void onUncaughtExceptionHappened(Thread thread, Throwable throwable) {
//                Log.e("AndroidRuntime", "--->onUncaughtExceptionHappened:" + thread + "<---", throwable);
//                CrashLog.saveCrashLog(getApplicationContext(), throwable);
//                new Handler(Looper.getMainLooper()).post(new Runnable() {
//                    @Override
//                    public void run() {
////                        toast.setText(R.string.safe_mode_excep_tips);
////                        toast.show();
//                    }
//                });
//            }
//
//            @Override
//            protected void onBandageExceptionHappened(Throwable throwable) {
//                throwable.printStackTrace();//打印警告级别log，该throwable可能是最开始的bug导致的，无需关心
//                toast.setText("程序异常！");
//                toast.show();
//            }
//
//            @Override
//            protected void onEnterSafeMode() {
////                int tips = R.string.safe_mode_tips;
////                Toast.makeText(CustomApp.this, getResources().getString(tips), Toast.LENGTH_LONG).show();
//                DebugSafeModeUI.showSafeModeUI();
//
////                if (BuildConfig.DEBUG) {
////                    Intent intent = new Intent(CustomApp.this, DebugSafeModeTipActivity.class);
////                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
////                    startActivity(intent);
////                }
//            }
//
//            @Override
//            protected void onMayBeBlackScreen(Throwable e) {
//                Thread thread = Looper.getMainLooper().getThread();
//                Log.e("AndroidRuntime", "--->onUncaughtExceptionHappened:" + thread + "<---", e);
//                //黑屏时建议直接杀死app
//                sysExcepHandler.uncaughtException(thread, new RuntimeException("black screen"));
//            }
//
//        });
//    }
//
//    public boolean isLoadingAak() {
//        return !StringUtil.isNull(fileUUID);
//    }
//
////    private void addBaiduSat() {
////        // 打开调试开关，可以查看logcat日志。版本发布前，为避免影响性能，移除此代码
////        // 查看方法：adb logcat -s sdkstat
////        StatService.setDebugOn(com.ryx.invoice.config.Config.debug);
////
////        // 开启自动埋点统计，为保证所有页面都能准确统计，建议在Application中调用。
////        // 第三个参数：autoTrackWebview：
////        // 如果设置为true，则自动track所有webview；如果设置为false，则不自动track webview，
////        // 如需对webview进行统计，需要对特定webview调用trackWebView() 即可。
////        // 重要：如果有对webview设置过webchromeclient，则需要调用trackWebView() 接口将WebChromeClient对象传入，
////        // 否则开发者自定义的回调无法收到。
////        StatService.autoTrace(this, true, false);
////// 获取测试设备ID
////        String testDeviceId = StatService.getTestDeviceId(getApplicationContext());
////// 日志输出
//////        android.util.Log.ZYEndorseOrderDetail("BaiduMobStat", "Test DeviceId : " + testDeviceId);
////        StatService.setOn(this,StatService.JAVA_EXCEPTION_LOG);
////    }
//
//    @Override
//    public void onLowMemory() {
//        super.onLowMemory();
//    }
//
//    @Override
//    public void onTerminate() {
//        super.onTerminate();
//    }
//
//    @Override
//    public void onTrimMemory(int level) {
//        super.onTrimMemory(level);
//    }
//
//    public static MyApp getCustomApp() {
//        return customApp;
//    }
//
//    public void reLogin() {
//        ConfigUtil.setIsLogin(false);
////        JpushUtils.removeTags();
//
//
//        try {
//            if (activities.size() > 0 && !(activities.get(activities.size() - 1) instanceof MainActivity)) {
//                Activity ac = activities.get(activities.size() - 1);
//                ac.startActivity(new Intent(ac, MainActivity.class));
//            }
//        } catch (Exception e) {
//
//        }
//        //token失效后跳转登录
//        if (activities.size() > 0 && !(activities.get(activities.size() - 1) instanceof LoginActivity)) {
//            Activity ac = activities.get(activities.size() - 1);
//            ac.startActivity(new Intent(ac, LoginActivity.class));
//        }
//    }
//
//    //跳转界面
//    public static void mainSwitchPage(int pos) {
//        try {
//            MainActivity.instance.swichPage(pos);
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    public static Context getAppContext() {
//        return customApp.getApplicationContext();
//    }
//
//    private List<Activity> activities = new ArrayList<>();
//
//    public void exitApp() {
//        for (Activity activity :
//                activities) {
//            if (activity != null)
//                activity.finish();
//        }
//    }
//
//}
